const DataSource = {
  // 数据存储  存储博客文章，格式: { id: blogPost }
  _blogPosts: {
    1: '这是博客文章1的内容',
    2: '这是博客文章2的内容',
  },

  // 获取博客文章
  getBlogPost(id) {
    return this._blogPosts[id];
  },
  
  // 获取评论列表（来自 CommentList 组件）
  getComments() {
    return [...this._comments];
  },
  
  // 事件监听管理
  _listeners: new Set(),
  
  addChangeListener(callback) {
    this._listeners.add(callback);
  },
  
  removeChangeListener(callback) {
    this._listeners.delete(callback);
  },
  
  // 触发更新（通知所有监听者）
  _notifyChangeListeners() {
    this._listeners.forEach(listener => listener());
  },
  
  // 数据操作方法（示例）
  fetchBlogPost(id) {
    // 从服务器获取文章（实际项目中通常使用异步 API）
    // 模拟异步请求
    setTimeout(() => {
      const mockPost = {
        id,
        title: `文章标题 ${id}`,
        content: `文章内容...`,
        createdAt: new Date().toISOString()
      };
      this._blogPosts[id] = mockPost;
      this._notifyChangeListeners();
    }, 1000);
  },
  
  // 添加评论（示例，用于 CommentList 组件）
  _comments: [],
  addComment(postId, text) {
    const newComment = {
      id: Date.now(),
      postId,
      text,
      createdAt: new Date()
    };
    this._comments.push(newComment);
    this._notifyChangeListeners();
  }
};

// 示例：初始化一些测试数据
DataSource.addComment("","第一条评论");
DataSource.addComment("","第二条评论");

export default DataSource;